
//程序开始
function exam(){
    var year = prompt('请输入年份：','');
    var month = prompt('请输入月份：','');
    //判断闰年
    //fun1(year);
    //求指定年月的天数
    //var days = fun2(year,month);
    //求该年月1号距1970-1-1多少天
    //var day = fun3(year,month);
    //求该年月1号是星期几
    //var week = fun4(year,month);
    //输出该年月的日历
    fun5(year,month);
}
//调用
exam();

/**
 * 判断是不时闰年
 * @param year 年份
 */
function fun1(year){
    //能被4整除且不能被100整除  或者 可以被400整除
    if( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ){
        console.log('是闰年！');
        return true;
    }else{
        console.log('不是闰年！');
        return false;
    }
}

/**
 * 输入年份月份，求该年月有多少天
 * @param year   年份 
 * @param month  月份
 */
function fun2(year,month){
    //天数
    var days = 0;
    //根据年份判断2月份的天数
    var sfrn = fun1(year);
    if(sfrn && month == 2){//闰年
        days = 29;
        console.log(year+"年"+month+"有29天！");
    }else if(!sfrn && month == 2){//闰年
        days = 28;
        console.log(year+"年"+month+"有28天！");
    }
    //根据月份判断除2月外的天数
    switch(month){
        case '1':
        case '3':
        case '5':
        case '7':
        case '8':
        case '10':
        case '12':
            days = 31;
            console.log(year+"年"+month+"有31天！");
            break;
        case '4':
        case '6':
        case '9':
        case '11':
            days = 30;
            console.log(year+"年"+month+"有30天！");
            break;
    }
    return days;
}

/**
 * 输入年份月份，求该年月1号距1970-1-1多少天
 * @param year   年份 
 * @param month  月份
 */
function fun3(year,month){
    //指定年月转为日期对象
    var d1 = new Date(year,(month-1),1);
    //1970-1-1
    var d2 = new Date("1970-01-01");
    //计算日期差的天数
    var time = d1 - d2;
    var day = time / 1000 / 60 / 60 / 24;
    console.log(year+"年"+month+"月1日距离1970-01-01有：" + day + "天");
    return day;

}

/**
 * 输入年份月份，求该年月1号是星期几
 * @param year   年份 
 * @param month  月份
 */
function fun4(year,month){
    //指定年月转为日期对象
    var date = new Date(year,(month-1),1);
    //获取星期
    var week = date.getDay();
    console.log(year+"年"+month+"月1日是星期" + week);
    return week;
}

/**
 * 输入年份月份，控制台输出该年月的日历
 * @param year   年份 
 * @param month  月份
 */
function fun5(year,month){
    //获取指定年月的天数
    var days = fun2(year,month);
    //获取指定年月的1号是星期几
    var week = fun4(year,month);

    console.log("日\t一\t二\t三\t四\t五\t六");
    var str = "";
    //输出空格
    for(var j=1; j<=week; j++){
        str += "\t";
    }
    for(var i=1; i<=days; i++){
        str += i+"\t";
        if((week+i) % 7 == 0){
            console.log(str);
            str = "";
        }
    }
    console.log(str);

}